//package com.ants.platform.core.plugins.mail;
//
//import org.apache.commons.lang3.StringUtils;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.InitializingBean;
//import org.springframework.beans.factory.annotation.Value;
//
//import javax.mail.PasswordAuthentication;
//import javax.mail.Session;
//import javax.mail.Transport;
//import javax.mail.internet.MimeMessage;
//import java.util.Properties;
//
///**
// * Created by liushun on 2016/7/23.
// */
//public class MailParams implements InitializingBean {
//
//    private static final Logger logger = LoggerFactory.getLogger(MailParams.class);
//    public final Properties mailProp = new Properties();
//    public Session session;
//    @Value("${mail.host:}")
//    private String host; //主机
//    @Value("${mail.port:0}")
//    private int port; //端口
//    @Value("${mail.account:}")
//    private String account; //账号
//    @Value("${mail.password:}")
//    private String password; //密码
//    @Value("${mail.transport.protocol:}")
//    private String protocol; //协议
//    @Value("${mail.debug:false}")
//    private boolean debug; //是否调试
//    @Value("${mail.smtp.auth:true}")
//    private boolean auth; //是否认证
//
//    //初始化邮件服务器
//    private void InitMailManager() {
//        mailProp.put("mail.host", host);
//        mailProp.put("mail.port", port);
//        mailProp.put("mail.account", account);
//        mailProp.put("mail.password", password);
//        mailProp.put("mail.transport.protocol", protocol);
//        mailProp.put("mail.smtp.auth", auth);
//        //使用JavaMail发送邮件的5个步骤
//        //1、创建session
//        Session session = Session.getInstance(mailProp, new javax.mail.Authenticator() {
//            protected PasswordAuthentication getPasswordAuthentication() {
//                return new PasswordAuthentication(account, password);
//            }
//        });
//        //开启Session的debug模式，这样就可以查看到程序发送Email的运行状态
//        session.setDebug(debug);
//        //2、通过session得到transport对象
//        Transport ts = null;
//        MimeMessage message = null;
//        try {
//            ts = session.getTransport();
//            //3、使用邮箱的用户名和密码连上邮件服务器，发送邮件时，发件人需要提交邮箱的用户名和密码给smtp服务器，用户名和密码都通过验证之后才能够正常发送邮件给收件人。
//            ts.connect(host, port, account, password);
//            this.session = session;
//        } catch (Exception e) {
//            e.printStackTrace();
//            throw new RuntimeException("连接 邮箱 配置参数错误连接失败，请认真检查配置！ ");
//        }
//    }
//
//    public void afterPropertiesSet() throws Exception {
//        if (StringUtils.isEmpty(host))
//            throw new RuntimeException("注入了邮箱功能，配置文件中却没有配置邮箱主机: mail.host");
//        else if (port == 0)
//            throw new RuntimeException("注入了邮箱功能，配置文件中却没有配置端口: mail.port");
//        else if (StringUtils.isEmpty(account))
//            throw new RuntimeException("注入了邮箱功能，配置文件中却没有配置账号: mail.account");
//        else if (StringUtils.isEmpty(password))
//            throw new RuntimeException("注入了邮箱功能，配置文件中却没有配置密码: mail.password");
//        else if (StringUtils.isEmpty(protocol))
//            throw new RuntimeException("注入了邮箱功能，配置文件中却没有配置协议: mail.protocol");
//        else {
//            //初始化邮件服务器
//            InitMailManager();
//            logger.info("\n=============================================================================================" +
//                    "\n===========================  连接 " + host + " 初始化 Mail 成功!" +
//                    "\n=============================================================================================");
//        }
//    }
//
//    enum EmailType {
//        TextType //文本邮件
//        , FileType //文件邮件
//        , ImageType; //图片邮件
//    }
//}
